base_dict = {
  # Level 1 BLAS
  '?axpy': {
    's': {
      '_k': 'arm/axpy.c',
    },
    'd': {
      '_k': 'arm/axpy.c',
    },
    'c': {
      '_k': 'arm/zaxpy.c',
    },
    'z': {
      '_k': 'arm/zaxpy.c',
    },
  },
  '?axpby': {
    's': {
      '_k': 'arm/axpby.c',
    },
    'd': {
      '_k': 'arm/axpby.c',
    },
    'c': {
      '_k': 'arm/zaxpby.c',
    },
    'z': {
      '_k': 'arm/zaxpby.c',
    },
  },
  # Level 2 BLAS
  '?symv': {
    's': {
      '_U': 'generic/symv_k.c',
      '_L': 'generic/symv_k.c',
    },
    'd': {
      '_U': 'generic/symv_k.c',
      '_L': 'generic/symv_k.c',
    },
    'c': {
      '_U': 'generic/zsymv_k.c',
      '_L': 'generic/zsymv_k.c',
    },
    'z': {
      '_U': 'generic/zsymv_k.c',
      '_L': 'generic/zsymv_k.c',
    },
  },
  '?ger': {
    's': {
      '_k': 'generic/ger.c',
    },
    'd': {
      '_k': 'generic/ger.c',
    },
  },
  '?geru': {
    'c': {
      '_k': 'generic/zger.c',
    },
    'z': {
      '_k': 'generic/zger.c',
    },
  },
  '?gerc': {
    'c': {
      '_k': 'generic/zger.c',
    },
    'z': {
      '_k': 'generic/zger.c',
    },
  },
  '?gerv': {
    'c': {
      '_k': 'generic/zger.c',
    },
    'z': {
      '_k': 'generic/zger.c',
    },
  },
  '?hemv': {
    'c': {
      '_U': 'generic/zhemv_k.c',
      '_L': 'generic/zhemv_k.c',
      '_V': 'generic/zhemv_k.c',
      '_M': 'generic/zhemv_k.c',
    },
    'z': {
      '_U': 'generic/zhemv_k.c',
      '_L': 'generic/zhemv_k.c',
      '_V': 'generic/zhemv_k.c',
      '_M': 'generic/zhemv_k.c',
    },
  },
  # Level 3 BLAS
  '?gemm': {
    's': {
      '_direct': 'x86_64/sgemm_direct_skylakex.c',
      '_direct_performant': 'x86_64/sgemm_direct_performant.c',
      '_small_matrix_permit': 'generic/gemm_small_matrix_permit.c',
    },
    'd': {
      '_small_matrix_permit': 'generic/gemm_small_matrix_permit.c',
    },
    'c': {
      '_small_matrix_permit': 'generic/zgemm_small_matrix_permit.c',
    },
    'z': {
      '_small_matrix_permit': 'generic/zgemm_small_matrix_permit.c',
    },
  },
  '?gemm3m': {
    'c': {
      '_oncopyb': f'generic/zgemm3m_ncopy_@CGEMM3M_UNROLL_N@.c',
      '_oncopyi': f'generic/zgemm3m_ncopy_@CGEMM3M_UNROLL_N@.c',
      '_oncopyr': f'generic/zgemm3m_ncopy_@CGEMM3M_UNROLL_N@.c',
      '_otcopyb': f'generic/zgemm3m_tcopy_@CGEMM3M_UNROLL_N@.c',
      '_otcopyr': f'generic/zgemm3m_tcopy_@CGEMM3M_UNROLL_N@.c',
      '_otcopyi': f'generic/zgemm3m_tcopy_@CGEMM3M_UNROLL_N@.c',
      '_incopyb': f'generic/zgemm3m_ncopy_@CGEMM3M_UNROLL_M@.c',
      '_incopyr': f'generic/zgemm3m_ncopy_@CGEMM3M_UNROLL_M@.c',
      '_incopyi': f'generic/zgemm3m_ncopy_@CGEMM3M_UNROLL_M@.c',
      '_itcopyb': f'generic/zgemm3m_tcopy_@CGEMM3M_UNROLL_M@.c',
      '_itcopyr': f'generic/zgemm3m_tcopy_@CGEMM3M_UNROLL_M@.c',
      '_itcopyi': f'generic/zgemm3m_tcopy_@CGEMM3M_UNROLL_M@.c',
    },
    'z': {
      '_oncopyb': f'generic/zgemm3m_ncopy_@ZGEMM3M_UNROLL_N@.c',
      '_oncopyi': f'generic/zgemm3m_ncopy_@ZGEMM3M_UNROLL_N@.c',
      '_oncopyr': f'generic/zgemm3m_ncopy_@ZGEMM3M_UNROLL_N@.c',
      '_otcopyb': f'generic/zgemm3m_tcopy_@ZGEMM3M_UNROLL_N@.c',
      '_otcopyi': f'generic/zgemm3m_tcopy_@ZGEMM3M_UNROLL_N@.c',
      '_otcopyr': f'generic/zgemm3m_tcopy_@ZGEMM3M_UNROLL_N@.c',
      '_incopyb': f'generic/zgemm3m_ncopy_@ZGEMM3M_UNROLL_M@.c',
      '_incopyi': f'generic/zgemm3m_ncopy_@ZGEMM3M_UNROLL_M@.c',
      '_incopyr': f'generic/zgemm3m_ncopy_@ZGEMM3M_UNROLL_M@.c',
      '_itcopyb': f'generic/zgemm3m_tcopy_@ZGEMM3M_UNROLL_M@.c',
      '_itcopyi': f'generic/zgemm3m_tcopy_@ZGEMM3M_UNROLL_M@.c',
      '_itcopyr': f'generic/zgemm3m_tcopy_@ZGEMM3M_UNROLL_M@.c',
    },
  },
  '?trmm': {
    's': {
      '_iunucopy': f'generic/trmm_uncopy_@SGEMM_UNROLL_M@.c',
      '_iunncopy': f'generic/trmm_uncopy_@SGEMM_UNROLL_M@.c',
      '_ilnucopy': f'generic/trmm_lncopy_@SGEMM_UNROLL_M@.c',
      '_ilnncopy': f'generic/trmm_lncopy_@SGEMM_UNROLL_M@.c',
      '_iutucopy': f'generic/trmm_utcopy_@SGEMM_UNROLL_M@.c',
      '_iutncopy': f'generic/trmm_utcopy_@SGEMM_UNROLL_M@.c',
      '_iltucopy': f'generic/trmm_ltcopy_@SGEMM_UNROLL_M@.c',
      '_iltncopy': f'generic/trmm_ltcopy_@SGEMM_UNROLL_M@.c',
      '_ounucopy': f'generic/trmm_uncopy_@SGEMM_UNROLL_N@.c',
      '_ounncopy': f'generic/trmm_uncopy_@SGEMM_UNROLL_N@.c',
      '_olnucopy': f'generic/trmm_lncopy_@SGEMM_UNROLL_N@.c',
      '_olnncopy': f'generic/trmm_lncopy_@SGEMM_UNROLL_N@.c',
      '_outucopy': f'generic/trmm_utcopy_@SGEMM_UNROLL_N@.c',
      '_outncopy': f'generic/trmm_utcopy_@SGEMM_UNROLL_N@.c',
      '_oltucopy': f'generic/trmm_ltcopy_@SGEMM_UNROLL_N@.c',
      '_oltncopy': f'generic/trmm_ltcopy_@SGEMM_UNROLL_N@.c',
    },
    'd': {
      '_iunucopy': f'generic/trmm_uncopy_@DGEMM_UNROLL_M@.c',
      '_iunncopy': f'generic/trmm_uncopy_@DGEMM_UNROLL_M@.c',
      '_ilnucopy': f'generic/trmm_lncopy_@DGEMM_UNROLL_M@.c',
      '_ilnncopy': f'generic/trmm_lncopy_@DGEMM_UNROLL_M@.c',
      '_iutucopy': f'generic/trmm_utcopy_@DGEMM_UNROLL_M@.c',
      '_iutncopy': f'generic/trmm_utcopy_@DGEMM_UNROLL_M@.c',
      '_iltucopy': f'generic/trmm_ltcopy_@DGEMM_UNROLL_M@.c',
      '_iltncopy': f'generic/trmm_ltcopy_@DGEMM_UNROLL_M@.c',
      '_ounucopy': f'generic/trmm_uncopy_@DGEMM_UNROLL_N@.c',
      '_ounncopy': f'generic/trmm_uncopy_@DGEMM_UNROLL_N@.c',
      '_olnucopy': f'generic/trmm_lncopy_@DGEMM_UNROLL_N@.c',
      '_olnncopy': f'generic/trmm_lncopy_@DGEMM_UNROLL_N@.c',
      '_outucopy': f'generic/trmm_utcopy_@DGEMM_UNROLL_N@.c',
      '_outncopy': f'generic/trmm_utcopy_@DGEMM_UNROLL_N@.c',
      '_oltucopy': f'generic/trmm_ltcopy_@DGEMM_UNROLL_N@.c',
      '_oltncopy': f'generic/trmm_ltcopy_@DGEMM_UNROLL_N@.c',
    },
    'c': {
      '_iunucopy': f'generic/ztrmm_uncopy_@CGEMM_UNROLL_M@.c',
      '_iunncopy': f'generic/ztrmm_uncopy_@CGEMM_UNROLL_M@.c',
      '_ilnucopy': f'generic/ztrmm_lncopy_@CGEMM_UNROLL_M@.c',
      '_ilnncopy': f'generic/ztrmm_lncopy_@CGEMM_UNROLL_M@.c',
      '_iutucopy': f'generic/ztrmm_utcopy_@CGEMM_UNROLL_M@.c',
      '_iutncopy': f'generic/ztrmm_utcopy_@CGEMM_UNROLL_M@.c',
      '_iltucopy': f'generic/ztrmm_ltcopy_@CGEMM_UNROLL_M@.c',
      '_iltncopy': f'generic/ztrmm_ltcopy_@CGEMM_UNROLL_M@.c',
      '_ounucopy': f'generic/ztrmm_uncopy_@CGEMM_UNROLL_N@.c',
      '_ounncopy': f'generic/ztrmm_uncopy_@CGEMM_UNROLL_N@.c',
      '_olnucopy': f'generic/ztrmm_lncopy_@CGEMM_UNROLL_N@.c',
      '_olnncopy': f'generic/ztrmm_lncopy_@CGEMM_UNROLL_N@.c',
      '_outucopy': f'generic/ztrmm_utcopy_@CGEMM_UNROLL_N@.c',
      '_outncopy': f'generic/ztrmm_utcopy_@CGEMM_UNROLL_N@.c',
      '_oltucopy': f'generic/ztrmm_ltcopy_@CGEMM_UNROLL_N@.c',
      '_oltncopy': f'generic/ztrmm_ltcopy_@CGEMM_UNROLL_N@.c',
    },
    'z': {
      '_iunucopy': f'generic/ztrmm_uncopy_@ZGEMM_UNROLL_M@.c',
      '_iunncopy': f'generic/ztrmm_uncopy_@ZGEMM_UNROLL_M@.c',
      '_ilnucopy': f'generic/ztrmm_lncopy_@ZGEMM_UNROLL_M@.c',
      '_ilnncopy': f'generic/ztrmm_lncopy_@ZGEMM_UNROLL_M@.c',
      '_iutucopy': f'generic/ztrmm_utcopy_@ZGEMM_UNROLL_M@.c',
      '_iutncopy': f'generic/ztrmm_utcopy_@ZGEMM_UNROLL_M@.c',
      '_iltucopy': f'generic/ztrmm_ltcopy_@ZGEMM_UNROLL_M@.c',
      '_iltncopy': f'generic/ztrmm_ltcopy_@ZGEMM_UNROLL_M@.c',
      '_ounucopy': f'generic/ztrmm_uncopy_@ZGEMM_UNROLL_N@.c',
      '_ounncopy': f'generic/ztrmm_uncopy_@ZGEMM_UNROLL_N@.c',
      '_olnucopy': f'generic/ztrmm_lncopy_@ZGEMM_UNROLL_N@.c',
      '_olnncopy': f'generic/ztrmm_lncopy_@ZGEMM_UNROLL_N@.c',
      '_outucopy': f'generic/ztrmm_utcopy_@ZGEMM_UNROLL_N@.c',
      '_outncopy': f'generic/ztrmm_utcopy_@ZGEMM_UNROLL_N@.c',
      '_oltucopy': f'generic/ztrmm_ltcopy_@ZGEMM_UNROLL_N@.c',
      '_oltncopy': f'generic/ztrmm_ltcopy_@ZGEMM_UNROLL_N@.c',
    },
  },
  '?hemm': {
    'c': {
      '_iutcopy': f'generic/zhemm_utcopy_@CGEMM_UNROLL_M@.c',
      '_iltcopy': f'generic/zhemm_ltcopy_@CGEMM_UNROLL_M@.c',
      '_outcopy': f'generic/zhemm_utcopy_@CGEMM_UNROLL_N@.c',
      '_oltcopy': f'generic/zhemm_ltcopy_@CGEMM_UNROLL_N@.c',
      '3m_oucopyb': f'generic/zhemm3m_ucopy_@CGEMM3M_UNROLL_N@.c',
      '3m_olcopyb': f'generic/zhemm3m_lcopy_@CGEMM3M_UNROLL_N@.c',
      '3m_oucopyr': f'generic/zhemm3m_ucopy_@CGEMM3M_UNROLL_N@.c',
      '3m_olcopyr': f'generic/zhemm3m_lcopy_@CGEMM3M_UNROLL_N@.c',
      '3m_oucopyi': f'generic/zhemm3m_ucopy_@CGEMM3M_UNROLL_N@.c',
      '3m_olcopyi': f'generic/zhemm3m_lcopy_@CGEMM3M_UNROLL_N@.c',
      '3m_iucopyb': f'generic/zhemm3m_ucopy_@CGEMM3M_UNROLL_M@.c',
      '3m_ilcopyb': f'generic/zhemm3m_lcopy_@CGEMM3M_UNROLL_M@.c',
      '3m_iucopyr': f'generic/zhemm3m_ucopy_@CGEMM3M_UNROLL_M@.c',
      '3m_ilcopyr': f'generic/zhemm3m_lcopy_@CGEMM3M_UNROLL_M@.c',
      '3m_iucopyi': f'generic/zhemm3m_ucopy_@CGEMM3M_UNROLL_M@.c',
      '3m_ilcopyi': f'generic/zhemm3m_lcopy_@CGEMM3M_UNROLL_M@.c',
    },
    'z': {
      '_iutcopy': f'generic/zhemm_utcopy_@ZGEMM_UNROLL_M@.c',
      '_iltcopy': f'generic/zhemm_ltcopy_@ZGEMM_UNROLL_M@.c',
      '_outcopy': f'generic/zhemm_utcopy_@ZGEMM_UNROLL_N@.c',
      '_oltcopy': f'generic/zhemm_ltcopy_@ZGEMM_UNROLL_N@.c',
      '3m_oucopyb': f'generic/zhemm3m_ucopy_@ZGEMM3M_UNROLL_N@.c',
      '3m_olcopyb': f'generic/zhemm3m_lcopy_@ZGEMM3M_UNROLL_N@.c',
      '3m_oucopyr': f'generic/zhemm3m_ucopy_@ZGEMM3M_UNROLL_N@.c',
      '3m_olcopyr': f'generic/zhemm3m_lcopy_@ZGEMM3M_UNROLL_N@.c',
      '3m_oucopyi': f'generic/zhemm3m_ucopy_@ZGEMM3M_UNROLL_N@.c',
      '3m_olcopyi': f'generic/zhemm3m_lcopy_@ZGEMM3M_UNROLL_N@.c',
      '3m_iucopyb': f'generic/zhemm3m_ucopy_@ZGEMM3M_UNROLL_M@.c',
      '3m_ilcopyb': f'generic/zhemm3m_lcopy_@ZGEMM3M_UNROLL_M@.c',
      '3m_iucopyr': f'generic/zhemm3m_ucopy_@ZGEMM3M_UNROLL_M@.c',
      '3m_ilcopyr': f'generic/zhemm3m_lcopy_@ZGEMM3M_UNROLL_M@.c',
      '3m_iucopyi': f'generic/zhemm3m_ucopy_@ZGEMM3M_UNROLL_M@.c',
      '3m_ilcopyi': f'generic/zhemm3m_lcopy_@ZGEMM3M_UNROLL_M@.c',
    },
  },
  '?trsm': {
    's': {
      '_iunucopy': f'generic/trsm_uncopy_@SGEMM_UNROLL_M@.c',
      '_iunncopy': f'generic/trsm_uncopy_@SGEMM_UNROLL_M@.c',
      '_ilnucopy': f'generic/trsm_lncopy_@SGEMM_UNROLL_M@.c',
      '_ilnncopy': f'generic/trsm_lncopy_@SGEMM_UNROLL_M@.c',
      '_iutucopy': f'generic/trsm_utcopy_@SGEMM_UNROLL_M@.c',
      '_iutncopy': f'generic/trsm_utcopy_@SGEMM_UNROLL_M@.c',
      '_iltucopy': f'generic/trsm_ltcopy_@SGEMM_UNROLL_M@.c',
      '_iltncopy': f'generic/trsm_ltcopy_@SGEMM_UNROLL_M@.c',
      '_ounucopy': f'generic/trsm_uncopy_@SGEMM_UNROLL_N@.c',
      '_ounncopy': f'generic/trsm_uncopy_@SGEMM_UNROLL_N@.c',
      '_olnucopy': f'generic/trsm_lncopy_@SGEMM_UNROLL_N@.c',
      '_olnncopy': f'generic/trsm_lncopy_@SGEMM_UNROLL_N@.c',
      '_outucopy': f'generic/trsm_utcopy_@SGEMM_UNROLL_N@.c',
      '_outncopy': f'generic/trsm_utcopy_@SGEMM_UNROLL_N@.c',
      '_oltucopy': f'generic/trsm_ltcopy_@SGEMM_UNROLL_N@.c',
      '_oltncopy': f'generic/trsm_ltcopy_@SGEMM_UNROLL_N@.c',
    },
    'd': {
      '_iunucopy': f'generic/trsm_uncopy_@DGEMM_UNROLL_M@.c',
      '_iunncopy': f'generic/trsm_uncopy_@DGEMM_UNROLL_M@.c',
      '_ilnucopy': f'generic/trsm_lncopy_@DGEMM_UNROLL_M@.c',
      '_ilnncopy': f'generic/trsm_lncopy_@DGEMM_UNROLL_M@.c',
      '_iutucopy': f'generic/trsm_utcopy_@DGEMM_UNROLL_M@.c',
      '_iutncopy': f'generic/trsm_utcopy_@DGEMM_UNROLL_M@.c',
      '_iltucopy': f'generic/trsm_ltcopy_@DGEMM_UNROLL_M@.c',
      '_iltncopy': f'generic/trsm_ltcopy_@DGEMM_UNROLL_M@.c',
      '_ounucopy': f'generic/trsm_uncopy_@DGEMM_UNROLL_N@.c',
      '_ounncopy': f'generic/trsm_uncopy_@DGEMM_UNROLL_N@.c',
      '_olnucopy': f'generic/trsm_lncopy_@DGEMM_UNROLL_N@.c',
      '_olnncopy': f'generic/trsm_lncopy_@DGEMM_UNROLL_N@.c',
      '_outucopy': f'generic/trsm_utcopy_@DGEMM_UNROLL_N@.c',
      '_outncopy': f'generic/trsm_utcopy_@DGEMM_UNROLL_N@.c',
      '_oltucopy': f'generic/trsm_ltcopy_@DGEMM_UNROLL_N@.c',
      '_oltncopy': f'generic/trsm_ltcopy_@DGEMM_UNROLL_N@.c',
    },
    'c': {
      '_iunucopy': f'generic/ztrsm_uncopy_@CGEMM_UNROLL_M@.c',
      '_iunncopy': f'generic/ztrsm_uncopy_@CGEMM_UNROLL_M@.c',
      '_ilnucopy': f'generic/ztrsm_lncopy_@CGEMM_UNROLL_M@.c',
      '_ilnncopy': f'generic/ztrsm_lncopy_@CGEMM_UNROLL_M@.c',
      '_iutucopy': f'generic/ztrsm_utcopy_@CGEMM_UNROLL_M@.c',
      '_iutncopy': f'generic/ztrsm_utcopy_@CGEMM_UNROLL_M@.c',
      '_iltucopy': f'generic/ztrsm_ltcopy_@CGEMM_UNROLL_M@.c',
      '_iltncopy': f'generic/ztrsm_ltcopy_@CGEMM_UNROLL_M@.c',
      '_ounucopy': f'generic/ztrsm_uncopy_@CGEMM_UNROLL_N@.c',
      '_ounncopy': f'generic/ztrsm_uncopy_@CGEMM_UNROLL_N@.c',
      '_olnucopy': f'generic/ztrsm_lncopy_@CGEMM_UNROLL_N@.c',
      '_olnncopy': f'generic/ztrsm_lncopy_@CGEMM_UNROLL_N@.c',
      '_outucopy': f'generic/ztrsm_utcopy_@CGEMM_UNROLL_N@.c',
      '_outncopy': f'generic/ztrsm_utcopy_@CGEMM_UNROLL_N@.c',
      '_oltucopy': f'generic/ztrsm_ltcopy_@CGEMM_UNROLL_N@.c',
      '_oltncopy': f'generic/ztrsm_ltcopy_@CGEMM_UNROLL_N@.c',
    },
    'z': {
      '_iunucopy': f'generic/ztrsm_uncopy_@ZGEMM_UNROLL_M@.c',
      '_iunncopy': f'generic/ztrsm_uncopy_@ZGEMM_UNROLL_M@.c',
      '_ilnucopy': f'generic/ztrsm_lncopy_@ZGEMM_UNROLL_M@.c',
      '_ilnncopy': f'generic/ztrsm_lncopy_@ZGEMM_UNROLL_M@.c',
      '_iutucopy': f'generic/ztrsm_utcopy_@ZGEMM_UNROLL_M@.c',
      '_iutncopy': f'generic/ztrsm_utcopy_@ZGEMM_UNROLL_M@.c',
      '_iltucopy': f'generic/ztrsm_ltcopy_@ZGEMM_UNROLL_M@.c',
      '_iltncopy': f'generic/ztrsm_ltcopy_@ZGEMM_UNROLL_M@.c',
      '_ounucopy': f'generic/ztrsm_uncopy_@ZGEMM_UNROLL_N@.c',
      '_ounncopy': f'generic/ztrsm_uncopy_@ZGEMM_UNROLL_N@.c',
      '_olnucopy': f'generic/ztrsm_lncopy_@ZGEMM_UNROLL_N@.c',
      '_olnncopy': f'generic/ztrsm_lncopy_@ZGEMM_UNROLL_N@.c',
      '_outucopy': f'generic/ztrsm_utcopy_@ZGEMM_UNROLL_N@.c',
      '_outncopy': f'generic/ztrsm_utcopy_@ZGEMM_UNROLL_N@.c',
      '_oltucopy': f'generic/ztrsm_ltcopy_@ZGEMM_UNROLL_N@.c',
      '_oltncopy': f'generic/ztrsm_ltcopy_@ZGEMM_UNROLL_N@.c',
    },
  },
  '?symm': {
    's': {
      '_iutcopy': f'generic/symm_ucopy_@SGEMM_UNROLL_M@.c',
      '_iltcopy': f'generic/symm_lcopy_@SGEMM_UNROLL_M@.c',
      '_outcopy': f'generic/symm_ucopy_@SGEMM_UNROLL_N@.c',
      '_oltcopy': f'generic/symm_lcopy_@SGEMM_UNROLL_N@.c',
    },
    'd': {
      '_iutcopy': f'generic/symm_ucopy_@DGEMM_UNROLL_M@.c',
      '_iltcopy': f'generic/symm_lcopy_@DGEMM_UNROLL_M@.c',
      '_outcopy': f'generic/symm_ucopy_@DGEMM_UNROLL_N@.c',
      '_oltcopy': f'generic/symm_lcopy_@DGEMM_UNROLL_N@.c',
    },
    'c': {
      '_iutcopy': f'generic/zsymm_ucopy_@CGEMM_UNROLL_M@.c',
      '_iltcopy': f'generic/zsymm_lcopy_@CGEMM_UNROLL_M@.c',
      '_outcopy': f'generic/zsymm_ucopy_@CGEMM_UNROLL_N@.c',
      '_oltcopy': f'generic/zsymm_lcopy_@CGEMM_UNROLL_N@.c',
      '3m_iucopyb': f'generic/zsymm3m_ucopy_@CGEMM3M_UNROLL_M@.c',
      '3m_oucopyb': f'generic/zsymm3m_ucopy_@CGEMM3M_UNROLL_N@.c',
      '3m_iucopyr': f'generic/zsymm3m_ucopy_@CGEMM3M_UNROLL_M@.c',
      '3m_oucopyr': f'generic/zsymm3m_ucopy_@CGEMM3M_UNROLL_N@.c',
      '3m_iucopyi': f'generic/zsymm3m_ucopy_@CGEMM3M_UNROLL_M@.c',
      '3m_oucopyi': f'generic/zsymm3m_ucopy_@CGEMM3M_UNROLL_N@.c',
      '3m_ilcopyb': f'generic/zsymm3m_lcopy_@CGEMM3M_UNROLL_M@.c',
      '3m_olcopyb': f'generic/zsymm3m_lcopy_@CGEMM3M_UNROLL_N@.c',
      '3m_ilcopyr': f'generic/zsymm3m_lcopy_@CGEMM3M_UNROLL_M@.c',
      '3m_olcopyr': f'generic/zsymm3m_lcopy_@CGEMM3M_UNROLL_N@.c',
      '3m_ilcopyi': f'generic/zsymm3m_lcopy_@CGEMM3M_UNROLL_M@.c',
      '3m_olcopyi': f'generic/zsymm3m_lcopy_@CGEMM3M_UNROLL_N@.c',
    },
    'z': {
      '_iutcopy': f'generic/zsymm_ucopy_@ZGEMM_UNROLL_M@.c',
      '_iltcopy': f'generic/zsymm_lcopy_@ZGEMM_UNROLL_M@.c',
      '_outcopy': f'generic/zsymm_ucopy_@ZGEMM_UNROLL_N@.c',
      '_oltcopy': f'generic/zsymm_lcopy_@ZGEMM_UNROLL_N@.c',
      '3m_iucopyb': f'generic/zsymm3m_ucopy_@ZGEMM3M_UNROLL_M@.c',
      '3m_oucopyb': f'generic/zsymm3m_ucopy_@ZGEMM3M_UNROLL_N@.c',
      '3m_iucopyr': f'generic/zsymm3m_ucopy_@ZGEMM3M_UNROLL_M@.c',
      '3m_oucopyr': f'generic/zsymm3m_ucopy_@ZGEMM3M_UNROLL_N@.c',
      '3m_iucopyi': f'generic/zsymm3m_ucopy_@ZGEMM3M_UNROLL_M@.c',
      '3m_oucopyi': f'generic/zsymm3m_ucopy_@ZGEMM3M_UNROLL_N@.c',
      '3m_ilcopyb': f'generic/zsymm3m_lcopy_@ZGEMM3M_UNROLL_M@.c',
      '3m_olcopyb': f'generic/zsymm3m_lcopy_@ZGEMM3M_UNROLL_N@.c',
      '3m_ilcopyr': f'generic/zsymm3m_lcopy_@ZGEMM3M_UNROLL_M@.c',
      '3m_olcopyr': f'generic/zsymm3m_lcopy_@ZGEMM3M_UNROLL_N@.c',
      '3m_ilcopyi': f'generic/zsymm3m_lcopy_@ZGEMM3M_UNROLL_M@.c',
      '3m_olcopyi': f'generic/zsymm3m_lcopy_@ZGEMM3M_UNROLL_N@.c',
    },
  },
  '?omatcopy_k': {
    's': {
      '_cn': 'arm/omatcopy_cn.c',
      '_rn': 'arm/omatcopy_rn.c',
      '_ct': 'arm/omatcopy_ct.c',
      '_rt': 'arm/omatcopy_rt.c',
    },
    'd': {
      '_cn': 'arm/omatcopy_cn.c',
      '_rn': 'arm/omatcopy_rn.c',
      '_ct': 'arm/omatcopy_ct.c',
      '_rt': 'arm/omatcopy_rt.c',
    },
    'c': {
      '_cn': 'arm/zomatcopy_cn.c',
      '_rn': 'arm/zomatcopy_rn.c',
      '_ct': 'arm/zomatcopy_ct.c',
      '_rt': 'arm/zomatcopy_rt.c',
      '_cnc': 'arm/zomatcopy_cnc.c',
      '_rnc': 'arm/zomatcopy_rnc.c',
      '_ctc': 'arm/zomatcopy_ctc.c',
      '_rtc': 'arm/zomatcopy_rtc.c',
    },
    'z': {
      '_cn': 'arm/zomatcopy_cn.c',
      '_rn': 'arm/zomatcopy_rn.c',
      '_ct': 'arm/zomatcopy_ct.c',
      '_rt': 'arm/zomatcopy_rt.c',
      '_cnc': 'arm/zomatcopy_cnc.c',
      '_rnc': 'arm/zomatcopy_rnc.c',
      '_ctc': 'arm/zomatcopy_ctc.c',
      '_rtc': 'arm/zomatcopy_rtc.c',
    },
  },
  '?imatcopy_k': {
    's': {
      '_cn': 'generic/imatcopy_cn.c',
      '_rn': 'generic/imatcopy_rn.c',
      '_ct': 'generic/imatcopy_ct.c',
      '_rt': 'generic/imatcopy_rt.c',
    },
    'd': {
      '_cn': 'generic/imatcopy_cn.c',
      '_rn': 'generic/imatcopy_rn.c',
      '_ct': 'generic/imatcopy_ct.c',
      '_rt': 'generic/imatcopy_rt.c',
    },
    'c': {
      '_cn': 'generic/zimatcopy_cn.c',
      '_rn': 'generic/zimatcopy_rn.c',
      '_ct': 'generic/zimatcopy_ct.c',
      '_rt': 'generic/zimatcopy_rt.c',
      '_cnc': 'generic/zimatcopy_cnc.c',
      '_rnc': 'generic/zimatcopy_rnc.c',
      '_ctc': 'generic/zimatcopy_ctc.c',
      '_rtc': 'generic/zimatcopy_rtc.c',
    },
    'z': {
      '_cn': 'generic/zimatcopy_cn.c',
      '_rn': 'generic/zimatcopy_rn.c',
      '_ct': 'generic/zimatcopy_ct.c',
      '_rt': 'generic/zimatcopy_rt.c',
      '_cnc': 'generic/zimatcopy_cnc.c',
      '_rnc': 'generic/zimatcopy_rnc.c',
      '_ctc': 'generic/zimatcopy_ctc.c',
      '_rtc': 'generic/zimatcopy_rtc.c',
    },
  },
  '?geadd': {
    's': {
      '_k': 'generic/geadd.c',
    },
    'd': {
      '_k': 'generic/geadd.c',
    },
    'c': {
      '_k': 'generic/zgeadd.c',
    },
    'z': {
      '_k': 'generic/zgeadd.c',
    },
  },
  '?gemm_small_kernel': {
    's': {
      '_nn': 'generic/gemm_small_matrix_kernel_nn.c',
      '_nt': 'generic/gemm_small_matrix_kernel_nt.c',
      '_tn': 'generic/gemm_small_matrix_kernel_tn.c',
      '_tt': 'generic/gemm_small_matrix_kernel_tt.c',
    },
    'd': {
      '_nn': 'generic/gemm_small_matrix_kernel_nn.c',
      '_nt': 'generic/gemm_small_matrix_kernel_nt.c',
      '_tn': 'generic/gemm_small_matrix_kernel_tn.c',
      '_tt': 'generic/gemm_small_matrix_kernel_tt.c',
    },
    'c': {
      '_nn': 'generic/zgemm_small_matrix_kernel_nn.c',
      '_nr': 'generic/zgemm_small_matrix_kernel_nn.c',
      '_rn': 'generic/zgemm_small_matrix_kernel_nn.c',
      '_rr': 'generic/zgemm_small_matrix_kernel_nn.c',
      '_nt': 'generic/zgemm_small_matrix_kernel_nt.c',
      '_nc': 'generic/zgemm_small_matrix_kernel_nt.c',
      '_rt': 'generic/zgemm_small_matrix_kernel_nt.c',
      '_rc': 'generic/zgemm_small_matrix_kernel_nt.c',
      '_tn': 'generic/zgemm_small_matrix_kernel_tn.c',
      '_tr': 'generic/zgemm_small_matrix_kernel_tn.c',
      '_cn': 'generic/zgemm_small_matrix_kernel_tn.c',
      '_cr': 'generic/zgemm_small_matrix_kernel_tn.c',
      '_tt': 'generic/zgemm_small_matrix_kernel_tt.c',
      '_tc': 'generic/zgemm_small_matrix_kernel_tt.c',
      '_ct': 'generic/zgemm_small_matrix_kernel_tt.c',
      '_cc': 'generic/zgemm_small_matrix_kernel_tt.c',
    },
    'z': {
      '_nn': 'generic/zgemm_small_matrix_kernel_nn.c',
      '_nr': 'generic/zgemm_small_matrix_kernel_nn.c',
      '_rn': 'generic/zgemm_small_matrix_kernel_nn.c',
      '_rr': 'generic/zgemm_small_matrix_kernel_nn.c',
      '_nt': 'generic/zgemm_small_matrix_kernel_nt.c',
      '_nc': 'generic/zgemm_small_matrix_kernel_nt.c',
      '_rt': 'generic/zgemm_small_matrix_kernel_nt.c',
      '_rc': 'generic/zgemm_small_matrix_kernel_nt.c',
      '_tn': 'generic/zgemm_small_matrix_kernel_tn.c',
      '_tr': 'generic/zgemm_small_matrix_kernel_tn.c',
      '_cn': 'generic/zgemm_small_matrix_kernel_tn.c',
      '_cr': 'generic/zgemm_small_matrix_kernel_tn.c',
      '_tt': 'generic/zgemm_small_matrix_kernel_tt.c',
      '_tc': 'generic/zgemm_small_matrix_kernel_tt.c',
      '_ct': 'generic/zgemm_small_matrix_kernel_tt.c',
      '_cc': 'generic/zgemm_small_matrix_kernel_tt.c',
    },
  },
  '?gemm_small_kernel_b0': {
    's': {
      '_nn': 'generic/gemm_small_matrix_kernel_nn.c',
      '_nt': 'generic/gemm_small_matrix_kernel_nt.c',
      '_tn': 'generic/gemm_small_matrix_kernel_tn.c',
      '_tt': 'generic/gemm_small_matrix_kernel_tt.c',
    },
    'd': {
      '_nn': 'generic/gemm_small_matrix_kernel_nn.c',
      '_nt': 'generic/gemm_small_matrix_kernel_nt.c',
      '_tn': 'generic/gemm_small_matrix_kernel_tn.c',
      '_tt': 'generic/gemm_small_matrix_kernel_tt.c',
    },
    'c': {
      '_nn': 'generic/zgemm_small_matrix_kernel_nn.c',
      '_nr': 'generic/zgemm_small_matrix_kernel_nn.c',
      '_rn': 'generic/zgemm_small_matrix_kernel_nn.c',
      '_rr': 'generic/zgemm_small_matrix_kernel_nn.c',
      '_nt': 'generic/zgemm_small_matrix_kernel_nt.c',
      '_nc': 'generic/zgemm_small_matrix_kernel_nt.c',
      '_rt': 'generic/zgemm_small_matrix_kernel_nt.c',
      '_rc': 'generic/zgemm_small_matrix_kernel_nt.c',
      '_tn': 'generic/zgemm_small_matrix_kernel_tn.c',
      '_tr': 'generic/zgemm_small_matrix_kernel_tn.c',
      '_cn': 'generic/zgemm_small_matrix_kernel_tn.c',
      '_cr': 'generic/zgemm_small_matrix_kernel_tn.c',
      '_tt': 'generic/zgemm_small_matrix_kernel_tt.c',
      '_tc': 'generic/zgemm_small_matrix_kernel_tt.c',
      '_ct': 'generic/zgemm_small_matrix_kernel_tt.c',
      '_cc': 'generic/zgemm_small_matrix_kernel_tt.c',
    },
    'z': {
      '_nn': 'generic/zgemm_small_matrix_kernel_nn.c',
      '_nr': 'generic/zgemm_small_matrix_kernel_nn.c',
      '_rn': 'generic/zgemm_small_matrix_kernel_nn.c',
      '_rr': 'generic/zgemm_small_matrix_kernel_nn.c',
      '_nt': 'generic/zgemm_small_matrix_kernel_nt.c',
      '_nc': 'generic/zgemm_small_matrix_kernel_nt.c',
      '_rt': 'generic/zgemm_small_matrix_kernel_nt.c',
      '_rc': 'generic/zgemm_small_matrix_kernel_nt.c',
      '_tn': 'generic/zgemm_small_matrix_kernel_tn.c',
      '_tr': 'generic/zgemm_small_matrix_kernel_tn.c',
      '_cn': 'generic/zgemm_small_matrix_kernel_tn.c',
      '_cr': 'generic/zgemm_small_matrix_kernel_tn.c',
      '_tt': 'generic/zgemm_small_matrix_kernel_tt.c',
      '_tc': 'generic/zgemm_small_matrix_kernel_tt.c',
      '_ct': 'generic/zgemm_small_matrix_kernel_tt.c',
      '_cc': 'generic/zgemm_small_matrix_kernel_tt.c',
    },
  },
}
